

#ifndef UD_DBLAYOUT_H
#define UD_DBLAYOUT_H

#include "zdbmain.h"
#include "zdbdict.h"
#include "zAdAChar.h"
#include "zdbPlotSettings.h"

#pragma pack(push, 8)

class UcDbLayout: public UcDbPlotSettings
{
public:
            UCDB_DECLARE_MEMBERS(UcDbLayout);

    UcDbLayout();
    virtual ~UcDbLayout     ();

    UcDbObjectId      
    getBlockTableRecordId   () const;

    virtual Ucad::ErrorStatus 
    setBlockTableRecordId   (UcDbObjectId BlockTableRecordId);

    virtual Ucad::ErrorStatus 
    addToLayoutDict         (UcDbDatabase *towhichDb,
                             UcDbObjectId BlockTableRecordId);

    Ucad::ErrorStatus 
    getLayoutName           (const ZTCHAR*& layoutName) const;

    Ucad::ErrorStatus 
    getLayoutName           (ZTCHAR*& layoutName) const;

    virtual Ucad::ErrorStatus 
    setLayoutName           (const ZTCHAR* layoutName);

    int               
    getTabOrder             () const;

    virtual void              
    setTabOrder             (int newOrder);

    bool
    getTabSelected          () const;

    virtual void              
    setTabSelected          (ZSoft::Boolean tabSelected);

    UcDbObjectIdArray 
    getViewportArray        () const;

    virtual Ucad::ErrorStatus 
    getClassID              (CLSID* pClsid) const;

#if defined(_WINDOWS_)
    Ucad::ErrorStatus getThumbnail (BITMAPINFO*& thumbnail) const;
    Ucad::ErrorStatus setThumbnail(const BITMAPINFO * thumbnail);
#endif

    void
    getLimits (UcGePoint2d& limMin, UcGePoint2d& limMax) const;

    void
    getExtents (UcGePoint3d& extMin, UcGePoint3d& extMax) const;

    Ucad::ErrorStatus
    initialize(UcDbObjectId* paperVportId = NULL);

    bool
    annoAllVisible() const;

    Ucad::ErrorStatus
    setAnnoAllVisible(bool newVal);
};

#pragma pack(pop)

#endif
